Animated GIF file Creation from no of JPEG files
Does anybody know the program to convert a many JPEG files to a single animated gif file.
Oh? And when did you ever say that? Perhaps you should provide clear questions and requirements.
[http://www.google.com/search?q=animated+gif+java|http://www.google.com/search?q=animated+gif+java]
Still, learn how to use Google.
Similar Messages
-
Can not open JPEG files and can not create JPEG files from other software
Can not open JPEG files and can not create JPEG files from other software (For example from Solidworks).
When I try to right click on a JPEG, a notice window appears written: "Windows Explorer has stopped working - Windows is
checking for a solution to the problem" and then the notice box disapears, the desktop appears and I can continue working.
From the other side - If I try to save as JPEG a screen of Solidworks (like a view of a part) the Solidworks falls but the JPEG
is created (I can see its name in the directory I created it).
I can open the JPEGS with the Paint software if I want but not with the Windows Photo Viewer.
I have the feeling that the Windows Photo Viewer disapeared from my computer - just a feeling.
I will appreciate your assistance.
Avi T. 2014Hi,
Did Windows Photo Viewer option appear when you right click the JPEG file and select open with?
I would like suggest you use Clean Boot to troubleshoot if there is third-party software conflict:
How to perform a clean boot in Windows
http://support.microsoft.com/kb/929135
Karen Hu
TechNet Community Support -
I am suddenly unable to open my pictures in Adobe Photoshop. It gives the following message: The document “Tina-19.jpg” could not be opened. Photoshop cannot open files in the “Adobe Photoshop JPEG file” format.
What does this mean? I have opened my photos in Adobe Photoshop for years and suddenly I get this message and can't open any of my picturesJoeLib wrote:
You type way faster than me Gene.
Well, not necessarily in this case.
According to the time stamp, Gene posted his answer a bit over three hours before you did, Joe.
Gene's post: Dec 29, 2014 5:54 PM
Joe's post: Dec 29, 2014 8:57 PM -
Same file name from sender to receiver file adapter with out using UDF
Hi All,
I am working on FILE TO FILE. My requirement is same file name from sender to receiver file adapter. Is it possible to do using only Adapter Specific message properties? i mean with out using UDF.
Thanks
KarthikHi,
>>>Is it possible to do using only Adapter Specific message properties?
yes
just enable Adapter Specific message properties in sender and receiver channel for file name
and you're done
Regards,
Michal Krawczyk -
Are there any tutorials on making animated gifs in flash, from a video?
I have an avi video file that i'd like to make into an animated gif in flash. How do I go about doing this? I know there is an option in photoshop where you can import the video frames onto layers. Is there something similar in flash?
[http://wetpixel.com/forums/lofiversion/index.php/t16884.html]
This might provide a bit of insight. -
How do I create a pdf from a large jpeg file
I am trying to convert a 20MB jpeg file into PDF using acrobat but I get an error that says the file is either not supported or is a corrupted/damaged file. However, I can open the jpeg in windows image viewer and photoshop.
Why not convert it in photoshop you ask? This is because every time I try to save a large file as pdf in photoshop, I get a corrupted file. I get the error "out of memory" when I try to open the file.
The 20MB jpeg file was originally a psd file, saved as jpeg and now being converted to pdf. Questions:
Is there a file size limit to convert to pdf in acrobat?
Why are my pdf files saved from photoshop saying 'out of memory'?Hello,
I was able to receive help from Adobe chat and resolve the issue. I did not get any answers as to why I was getting the error message. But to get around the error message, these are the steps:
1. Save image as Jpeg (in photoshop or whatever)
2. In windows explorer, right-click on jpeg file and click "open file with" and choose Adobe Acrobat
3. Once the file is open in Acrobat, File > Save (not save as) then save in desired file name.
This is another option to save jpegs as PDFs. An even better option for saving images into PDFs is to save the file as Photoshop EPS format in photoshop, you can then open it in Acrobat to save as a PDF. While saving as Jpeg and converting to pdf yielded a ~15mb file, saving the files as a PhotoshopEPS first then converting it to PDF yields a smaller file, at ~9mb. Still the same quality. -
How do i keep my RAW files from turing to jpeg files when exporting them to My Passport?
I am an amature photographer and take all my pitures in RAW form (highest quality and more editing capability). I was given a My Passport for Mac external harddrive to transfer all my files to to open more space on my mac book. When importing my RAW files to the Passport they automatically turn to JPEG files. I just re-imported a few files from the Passport back into Aperature and they are still JPEG files Is there something i need to do to keep my RAW files RAW? If not with the Passport, is there another external that would be of better use to me?
When you drag and drop the from Aperture you export the JPEG Preview.
Use the command "File > Export" in Aperture to export the original files.
You can also open an Aperture library in Photos - this will create a Photos library. -
File copy from shell using nautilus file operations?
Is it possible to have the nautilus file operations copy command from a shell? In other words, rather than using the cp command, I'd like to have a file copy triggered from a bash script that uses the familiar "File Operations" dialog box in nautilus. Can this be done?
Hello Bibin,
Give this a try., if i understood correctly. I coudn't test it my side.
$servers = get-content C:\hosts.txt
foreach ($server in $servers)
if(test-path \\Centralserver\share\$server)
if(test-path \\$server\c$\xxx.file)
Copy -path \\$server\c$\xxx.file -Destination \\CentralServer\share\$server\ -Recurse -ErrorVariable CopyErrorS
#stores all your copy errors
$copyError = $copyError + $copyerrorS
else
Write-Output "source file on server $server is missing"
else
New-Item -Name $server -ItemType Directory -path \\centralserver\share\ -Force -Errorvariabe FCreationErrorS
#Stores all your Folder creation errors
$FCreationError = $FCreationError + $FCreationErrorS
if((test-path \\$server\c$\xxx.file) -and (test-path \\Centralserver\share\$server))
Copy -path \\$server\c$\xxx.file -Destination \\CentralServer\share\$server\ -Recurse -force
else
Write-Output "Error creating source folder on $server."
Regards,
V.
Venu -
How to send a picture in pdf file when it is in jpeg file
how do I send an attachment in PDF file when it is now in jpeg file. I want to send this attachment in an email.
Hi,
Please convert your JPEG files to PDF file using "Convert to PDF" tool at https://createpdf.acrobat.com/signin.html or Adobe Reader X or Reader XI(using Tools >CreatePDF).
After converting the file please download it to your computer then attach it in your email.
Thank you.
Hisami -
Cant do a file get from external server using file sender adapter with ftp
Hi all,
Up until now our company has only used the file sender adapter with ftp protocol to get a file from our XI server for processing and input the file into an integration process
I have a requirement to do an ftp file get from an external server
From our XI development server I can ftp directly to the external server and view the required directory using the command window via a DOS prompt (FTP open ...). So all firewall issues and communications are fine
Unfortunately I cannot currently pull files from the external server using the XI file adapter with ftp protocol from the XI development server AWB017
FTP Connection Parameters: External server name using port 21, Data Connection is Passive, No security, I supply a userid and password
Processing Parameters: Processing Mode is Archive (I tried test but this did not work either)
No messages appear in the RWB
Is there something else that I need to set up in order for the external ftp get to work via the XI file adapter?
Regards,
MikeThanks for your responses.
I have found the error messages in the File Adapter Monitor
Scenario 1
When I prefix the source directory with a forward slash, eg <b>/Folder/Subfolder</b> the error message is as follows
<b>EST: Error: Error connecting to ftp server 'ip address': FTPEx: /Folder/Subfolder: The system cannot find the path specified</b>
Scenario 2
When I DO NOT prefix the source directory with a forward slash, eg <b>Folder/Subfolder</b> a different error message is returned
<b>Error: Retrieving file 'FILENAME.XML' failed unexpectedly: FTPEx: Folder/Subfolder: The system cannot find the path specified</b>
At least in this scenario the adapter has been able to identify the file on the external FTP site but cannot retrieve it
Questions
I thought that the backslash prefix for the source directory was mandatory but I am receiving an error in each scenario
I receive the same error message whether the Processing Mode is 'Archive' or 'Test'
The logs on the external ftp server seem to indicate that I am simply connecting, sending username and password then quiting straight away. I am not issuing any commands that they can see
I thought that being a Sender adapter it would inherently execute a Pull or Get command
To recap, from our XI development server I can ftp directly to the external server and view the required directory using the command window via a DOS prompt (FTP open ...). So all firewall issues, communications, userid and password are fine
Has anyone experienced these issues?
Please advise on next course of action?
Regards,
Mike -
Hi guys,
I got a problem with my Office 365 that every time I open an office file from IE/chrome browser (i.e. click the document link and save the file to local, open it in the browser after download completed) or under a zip file, no matter it is an excel file
or word document, the Excel/Word crashes. The Excel/Word will ask me to repair the file if I open the file again. The file will be closed automatically after the repair, when I open the file again it will told me the excel/word itself has just successfully
registered and ask me to close and re-open the excel again in order to enable editing the file. This is extremely inconvenience, I have to open this file 4 times to edit my file.
Could anyone here can help me to resolve the problem?
Many thanks.Hi,
According to your description, Excel seems not crash when you opened a local Excel/Word file directly. Where do you store these file? OneDrive, SharePoint or other?
If possible, please let me see the screenshot of the error dialog.
Moreover, please open Event Viewer to check whether there's any error about the Excel/Word crash issue.
Press Win + R, type "eventvwr" in the blank box, press Enter. In the Event Viewer, browse to Windows Logs -> Application, there may be some errors after the crash.
To protect your privacy, you may send the error logs to
[email protected], we will try to find the cause.
Regards,
George Zhao
Forum Support
Come back and mark the replies as answers if they help and unmark them if they provide no help.
If you have any feedback on our support, please click "[email protected]" -
UCM 11g File missing from search result although file is accessable
When I do search without any criteria in UCM 11g, some files missing from search result although I know the files were checked into UCM already since I'm able to see these files using url similar to:
http://ucm/cs/idcplg?idcService=GET_FILE&dID=12345
or use following url to get document information:
http://ucm/cs/idcplg?idcService=DOC_INFO&dID=12345
the file is not in the search resule even search by ID.
also, the seach result say "displaying 1-20" but only display few files (e.g. 2 files, less than 20)
Is this a known problem? the same search was working in UCM 10 perfectly.
ThanksThe query seems able to retrieve the missing document. for example, I search by content ID, in the audit log (eanbled as you mentioned) give th efollowing information:
fusionappsattachments/6 09.13 06:22:03.878 IdcServer-3474 --- @ResultSet SearchResults ---
fusionappsattachments/6 09.13 06:22:03.878 IdcServer-3474 numFields=66,*numRows=1*,currentRow=0
also, the infomation following above give the deteail field information which match with the missing document.
I looks like UCM just did not bring it to UI as part of search result.
This seems match with my another finding as I mentioned earlier: the seach result say "displaying 1-20" but only display few files (e.g. 2 files, less than 20)
it seems query did find the documents but UI did not show it.
Not sure if this is a known bug. -
I can't seem to remove / unload the external swf files e.g when the carousel.swf (portfolio) is displayed and I press the about button the about content is overlapping the carousel (portfolio) . How can I remove / unload an external swf file from the main flash file and load a new swf file, while at the same time removing garbage collection from memory?
This is the error message(s) I am receiving: "TypeError: Error #2007: Parameter child must be non-null.
at flash.display::DisplayObjectContainer/removeChild()
at index_fla::MainTimeline/Down3()"
import nl.demonsters.debugger.MonsterDebugger;
var d:MonsterDebugger=new MonsterDebugger(this);
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
stage.addEventListener(Event.RESIZE, resizeHandler);
// loader is the loader for portfolio page swf
var loader:Loader;
var loader2:Loader;
var loader3:Loader;
var loader1:Loader;
// resize content
function resizeHandler(event:Event):void {
// resizes portfolio page to center
loader.x = (stage.stageWidth - loader.width) * .5;
loader.y = (stage.stageHeight - loader.height) * .5;
// resizes about page to center
loader3.x = (stage.stageWidth - 482) * .5 - 260;
loader3.y = (stage.stageHeight - 492) * .5 - 140;
/*loader2.x = (stage.stageWidth - 658.65) * .5;
loader2.y = (stage.stageHeight - 551.45) * .5;*/
addEventListener(Event.ENTER_FRAME, onEnterFrame,false, 0, true);
function onEnterFrame(ev:Event):void {
var requesterb:URLRequest=new URLRequest("carouselLoader.swf");
loader = null;
loader = new Loader();
loader.name ="carousel1"
//adds gallery.swf to stage at begining of movie
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);
function ioError(event:IOErrorEvent):void {
trace(event);
try {
loader.load(requesterb);
} catch (error:SecurityError) {
trace(error);
addChild(loader);
loader.x = (stage.stageWidth - 739) * .5;
loader.y = (stage.stageHeight - 500) * .5;
// stop gallery.swf from duplication over and over again on enter frame
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
//PORTFOLIO BUTTON
//adds eventlistner so that gallery.swf can be loaded
MovieClip(root).nav.portfolio.addEventListener(MouseEvent.MOUSE_DOWN, Down, false, 0, true);
function Down(event:MouseEvent):void {
// re adds listener for contact.swf and about.swf
MovieClip(root).nav.info.addEventListener(MouseEvent.MOUSE_DOWN, Down1, false, 0, true);
MovieClip(root).nav.about.addEventListener(MouseEvent.MOUSE_DOWN, Down3, false, 0, true);
//unloads gallery.swf from enter frame if users presses portfolio button in nav
var requester:URLRequest=new URLRequest("carouselLoader.swf");
loader = null;
loader = new Loader();
loader.name ="carousel"
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);
function ioError(event:IOErrorEvent):void {
trace(event);
try {
loader.load(requester);
} catch (error:SecurityError) {
trace(error);
addChild(loader);
loader.x = (stage.stageWidth - 739) * .5;
loader.y = (stage.stageHeight - 500) * .5;
removeChild( getChildByName("about") );
removeChild( getChildByName("carousel1") );
// remove eventlistner and prevents duplication of gallery.swf
MovieClip(root).nav.portfolio.removeEventListener(MouseEvent.MOUSE_DOWN, Down);
//INFORMATION BUTTON
//adds eventlistner so that info.swf can be loaded
MovieClip(root).nav.info.addEventListener(MouseEvent.MOUSE_DOWN, Down1, false, 0, true);
function Down1(event:MouseEvent):void {
//this re-adds the EventListener for portfolio so that end user can view again if they wish.
MovieClip(root).nav.portfolio.addEventListener(MouseEvent.MOUSE_DOWN, Down, false, 0, true);
MovieClip(root).nav.about.addEventListener(MouseEvent.MOUSE_DOWN, Down3, false, 0, true);
var requester:URLRequest=new URLRequest("contactLoader.swf");
loader2 = null;
loader2 = new Loader();
loader2.name ="contact"
loader2.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);
function ioError(event:IOErrorEvent):void {
trace(event);
try {
loader2.load(requester);
} catch (error:SecurityError) {
trace(error);
addChild(loader2);
loader2.x = (stage.stageWidth - 658.65) * .5;
loader2.y = (stage.stageHeight - 551.45) * .5;
// remove eventlistner and prevents duplication of info.swf
MovieClip(root).nav.info.removeEventListener(MouseEvent.MOUSE_DOWN, Down1);
//ABOUT BUTTON
//adds eventlistner so that info.swf can be loaded
MovieClip(root).nav.about.addEventListener(MouseEvent.MOUSE_DOWN, Down3, false, 0, true);
function Down3(event:MouseEvent):void {
//this re-adds the EventListener for portfolio so that end user can view again if they wish.
MovieClip(root).nav.portfolio.addEventListener(MouseEvent.MOUSE_DOWN, Down, false, 0, true);
MovieClip(root).nav.info.addEventListener(MouseEvent.MOUSE_DOWN, Down1, false, 0, true);
var requester:URLRequest=new URLRequest("aboutLoader.swf");
loader3 = null;
loader3 = new Loader();
loader3.name ="about"
loader3.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);
function ioError(event:IOErrorEvent):void {
trace(event);
try {
loader3.load(requester);
} catch (error:SecurityError) {
trace(error);
addChild(loader3);
loader3.x = (stage.stageWidth - 482) * .5 - 260;
loader3.y = (stage.stageHeight - 492) * .5 - 140;
removeChild( getChildByName("carousel") );
removeChild( getChildByName("carousel1") );
// remove eventlistner and prevents duplication of info.swf
MovieClip(root).nav.about.removeEventListener(MouseEvent.MOUSE_DOWN, Down3);
stop();Andrei1,
Thank you for the helpful advice. I made the changes as you suggested but I am receiving a #1009 error message even though my site is working the way I wan it to work. I would still like to fix the errors so that my site runs and error free. This is the error I am receiving:
"TypeError: Error #1009: Cannot access a property or method of a null object reference."
I'm sure this is not the best method to unload loaders and I am guessing this is why I am receiving the following error message.
loader.unload();
loader2.unload();
loader3.unload();
I also tried creating a function to unload the loader but received the same error message and my portfolio swf was not showing at all.
function killLoad():void{
try { loader.close(); loader2.close; loader3.close;} catch (e:*) {}
loader.unload(); loader2.unload(); loader3.unload();
I have a question regarding suggestion you made to set Mouse Event to "null". What does this do setting the MouseEvent do exactly? Also, since I've set the MouseEvent to null do I also have to set the loader to null? e.g.
---- Here is my updated code ----
// variable for external loaders
var loader:Loader;
var loader1:Loader;
var loader2:Loader;
var loader3:Loader;
// makes borders resize with browser size
function resizeHandler(event:Event):void {
// resizes portfolio page to center
loader.x = (stage.stageWidth - loader.width) * .5;
loader.y = (stage.stageHeight - loader.height) * .5;
// resizes about page to center
loader3.x = (stage.stageWidth - 482) * .5 - 260;
loader3.y = (stage.stageHeight - 492) * .5 - 140;
//adds gallery.swf to stage at begining of moviie
Down();
//PORTFOLIO BUTTON
//adds eventlistner so that gallery.swf can be loaded
MovieClip(root).nav.portfolio.addEventListener(MouseEvent.MOUSE_DOWN, Down, false, 0, true);
function Down(event:MouseEvent = null):void {
// re adds listener for contact.swf and about.swf
MovieClip(root).nav.info.addEventListener(MouseEvent.MOUSE_DOWN, Down1, false, 0, true);
MovieClip(root).nav.about.addEventListener(MouseEvent.MOUSE_DOWN, Down3, false, 0, true);
//unloads gallery.swf from enter frame if users presses portfolio button in nav
var requester:URLRequest=new URLRequest("carouselLoader.swf");
loader = new Loader();
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);
function ioError(event:IOErrorEvent):void {
trace(event);
try {
loader.load(requester);
} catch (error:SecurityError) {
trace(error);
this.addChild(loader);
loader.x = (stage.stageWidth - 739) * .5;
loader.y = (stage.stageHeight - 500) * .5;
// sure this is not the best way to do this - but it is unload external swfs
loader.unload();
loader2.unload();
loader3.unload();
// remove eventlistner and prevents duplication of gallery.swf
MovieClip(root).nav.portfolio.removeEventListener(MouseEvent.MOUSE_DOWN, Down);
//INFORMATION BUTTON
//adds eventlistner so that info.swf can be loaded
MovieClip(root).nav.info.addEventListener(MouseEvent.MOUSE_DOWN, Down1, false, 0, true);
function Down1(event:MouseEvent = null):void {
//this re-adds the EventListener for portfolio so that end user can view again if they wish.
MovieClip(root).nav.portfolio.addEventListener(MouseEvent.MOUSE_DOWN, Down, false, 0, true);
MovieClip(root).nav.about.addEventListener(MouseEvent.MOUSE_DOWN, Down3, false, 0, true);
var requester:URLRequest=new URLRequest("contactLoader.swf");
loader2 = null;
loader2 = new Loader();
loader2.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);
function ioError(event:IOErrorEvent):void {
trace(event);
try {
loader2.load(requester);
} catch (error:SecurityError) {
trace(error);
addChild(loader2);
loader2.x = (stage.stageWidth - 658.65) * .5;
loader2.y = (stage.stageHeight - 551.45) * .5;
loader.unload();
loader2.unload();
loader3.unload();
// remove eventlistner and prevents duplication of info.swf
MovieClip(root).nav.info.removeEventListener(MouseEvent.MOUSE_DOWN, Down1);
//ABOUT BUTTON
//adds eventlistner so that info.swf can be loaded
MovieClip(root).nav.about.addEventListener(MouseEvent.MOUSE_DOWN, Down3, false, 0, true);
function Down3(event:MouseEvent = null):void {
//this re-adds the EventListener for portfolio so that end user can view again if they wish.
MovieClip(root).nav.portfolio.addEventListener(MouseEvent.MOUSE_DOWN, Down, false, 0, true);
MovieClip(root).nav.info.addEventListener(MouseEvent.MOUSE_DOWN, Down1, false, 0, true);
var requester:URLRequest=new URLRequest("aboutLoader.swf");
loader3 = null;
loader3 = new Loader();
loader3.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);
function ioError(event:IOErrorEvent):void {
trace(event);
try {
loader3.load(requester);
} catch (error:SecurityError) {
trace(error);
addChild(loader3);
loader3.x = (stage.stageWidth - 482) * .5 - 260;
loader3.y = (stage.stageHeight - 492) * .5 - 140;
loader.unload();
loader2.unload();
loader3.unload();
// remove eventlistner and prevents duplication of info.swf
MovieClip(root).nav.about.removeEventListener(MouseEvent.MOUSE_DOWN, Down3);
stop(); -
Hi, I have a Flash file (Flash1.fla). I have a public method, method1() in a public class of the file. I have another Flash file (Flash2.fla). I have a public method, method2() in the public class of this file. I want to call the method1() from Flash2.swf and the method2() from Flash1.swf. Please help!!
swf-to-swf communication
http://kb2.adobe.com/community/publishing/918/cpsid_91887.html -
Files/Clips from old iDVD image files
I am an underwater photographer and I have a number of older projects that I created in FCP/iDVD. I have the iDVD image files, but not the original MOV files, as they were huge and were deleted to save space.
I would like to create a compilation DVD that has all of the old disks combined into one.
Any way to extract the clips from the image files and drop them into a new project. They are already rendered to the the DVD format.
Thanks in advance, DavidFrank's reply is correct but a little lacking in detail!
You will need to re-edit the files in iMovie in order to make it one single project.
You first need to convert the VOB files back to DV which iMovie is designed to handle. For that you need mpegStreamclip:
http://www.apple.com/downloads/macosx/video/mpegstreamclip.html
which is free, but you must also have the Apple mpeg2 plugin :
http://www.apple.com/quicktime/mpeg2/
which is a mere $20.
Another possibility is to use DVDxDV:
http://www.dvdxdv.com/NewFolderLookSite/Products/DVDxDV.overview.htm
which costs $25.
Obviously the foregoing only applies to DVDs you have made yourself, or other home-made DVDs that have been given to you. It will NOT work on copy-protected commercial DVDs, which in any case would be illegal.
Maybe you are looking for
-
How to open a net device in kernel?
Hello there, Does someone have ideas to open a particular ethernet device in kernel? If there are several same type device, how to do that? Any advice will be really appreciated. zane
-
I have several pdfs on my iPad in iBooks. My iPhone shows only the categories, none of the documents. How can I get my iPhone to also show the documents that are on my iPad?
-
Why doesn't "include/object/text from file" work?
I want to include (link) text from other Word documents to a main Word document and I use "include/object/text from file" (Word function) It works fine when I do so in "H:", but doing exactly the same in the Sharepoint environement result in "nothi
-
No Sound from iTunes Movie Download
I ordered a 2 movies last Sunday (10/17) and both had no sound for the full 24 hr time period. I have not tried a TV download yet. anyone else? Netflix movies are fine. Internet radio is fine. Podcasts, fine. everything seems fine but the movie downl
-
SQL Dev 2.1:Ability to save and load visual query models?
At SQL Dev 2.1, do we now have the ability to save and load visual query models as with TOAD? Or has that functionality been rolled into the for-pay Data Modeler extension? Seemed strange to hide the functionality deep within SQL Worksheet, then not